#pragma once
#include <YSimpleSystem/YProactorToken.h>

namespace ysimple_network
{
	struct IDisconectCallback;
	struct ITCPSession;

	class YProactorTokenOnDisconnect :
		public ysimple_system::YProactorToken
	{
		IDisconectCallback*		m_pCallback;
		ITCPSession*					m_pSession;
	public:
		YProactorTokenOnDisconnect(void);
		virtual ~YProactorTokenOnDisconnect(void);

		void				beginInit(IDisconectCallback& callback, ITCPSession& session);	
		void				endInit(bool success);
		bool				onCompleted(bool completionStatus, LONG_PTR		completionKey, DWORD			dwBytesTransfered ) override;
	};


}
